<< Back to shouce.jb51.net


[上一页][首页][索引页][下一页]

6. 安装 Gentoo 基本系统


04.07.27.14:25.Eric - 04.07.27.18:13.Eric (break = 37. delta time = 191 min, rate = 191/1742 = 0.11 min/w)
内容:

6.a. Chrooting (切换到新系统环境中)

可选: 选择镜像服务器

如果您是从 Gentoo LiveCD 启动的, 那么您就可以使用 mirrorselect 这个工具来更新 /etc/make.conf 中的镜像服务器列表, 为 Portage 和源代码包的下载选择最快最好用的镜像服务器 (当然, 您首先要有可用的网络连接).

代码清单 1: 选择最快的镜像服务器
# mirrorselect -a -s4 -o | grep -ve '^Netselect' >> /mnt/gentoo/etc/make.conf

如果因为某些原因 mirrorselect 不成功了, 没关系. 这一步完全是可做可不做的, 默认的镜像列表值已经足够应付使用.

拷贝 DNS 信息

在切换到新系统环境之前, 我们还有一件事要做, 那就是拷贝 /etc/resolv.conf 中的 DNS 信息. 做这一步是为了保证您在切换到新系统环境之后网络仍然可用. /etc/resolv.conf 中包含了您网络中域名服务器的信息.

代码清单 2: 拷贝 DNS 信息
("-L" 参数用来保证我们拷贝的不是一个符号链接)
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
进入新环境

现在呢, 我们所有的分区都已初始化完毕并且基本系统也安装妥当, 是时候切换 (chrooting) 到我们的新的安装环境中了. 这意味着, 我们将从当前的安装环境 (由 LiveCD 或其他安装媒介提供的) 切换到您自己的安装环境中 (即是已初始化的那些分区当中).

切换 (chrooting) 分三步进行. 首先我们会用 chroot 把根 (root) 环境从 / (安装媒介上的) 切换到 /mnt/gentoo (您分区上的). 接着我们会用 env-update 创建一个新环境, 这一命令实质上将设定一系列的环境变量. 最后, 我们用 source 命令把这些环境变量读到内存中.

代码清单 3: 切换到新的环境
# chroot /mnt/gentoo /bin/bash
# env-update 
 * Caching service dependencies...
# source /etc/profile

恭喜! 您已经进入到您自己的 Gentoo Linux 环境中啦! 当然, 这离最终完工还远着哪, 这就是为啥后面还有这么多关于安装的章节的原因 :-)

可选: 更新 Portage 树

如果在前面一章中您尚未安装 Portage 快照, 您现在就需要从网上下载一个最新的 Portage 树. 命令 emerge sync 将为您完成这一工作. 其他用户则可以跳过这一部分到配置 USE 参数.

代码清单 4: 更新 Portage 树
# emerge sync

Portage 会用 RSYNC 协议来更新 Portage 树. 如果上述命令由于防火墙的缘故失效, 那么请使用 emerge-webrsync, 这个命令会通过普通的 HTTP 协议来下载和安装 Portage 快照.

代码清单 5: 以 emerge-webrsync 来更新 Portage 树
# emerge-webrsync

如果期间提示说有新版本的 Portage 并且建议您更新, 您可以完全忽略这提示. Portage 会在后续的安装过程中自动更新的.

配置 USE 参数

USE 是 Gentoo 提供给用户的最强大的参数之一. 许多程序可以在编译过程中加入或不加入对某些功能的支持. 例如, 有些程序就可以在编译成 gtk 支持的或是 qt 支持的 (Cure: 即在图形界面上使用 gtk 或是使用 qt). 有些则可以加入或不加入对 SSL 的支持. 有些甚至可以编译成支持帧缓冲 (framebuffer) (svgalib) 而非 X11 (X-server) 的 (Cure: 如 mplayer, 这样就可以在字符界面下直接利用帧缓冲来看视频而不需要启动 X 图形服务器).

许多 Linux 发行商会在编译软件包时加入尽可能多的支持, 这无疑会增加程序的体积和启动时间, 更别提数量庞大复杂的依赖关系了. Gentoo 让您有这样的自由可以决定在编译软件包时到底加入哪些支持. 这就是 USE 参数的来历.

在 USE 参数中, 您定义的关键字都一一对应到一些编译选项 (compile-options) 中. 比如, ssl 会让支持 ssl 的程序加入这一支持. -X 会去掉 X 图形服务器支持 (留意前面的那个小减号). gnome gtk -kde -qt 将让您程序加入 gnome (以及 gtk) 支持, 而不要 kde (qt) 支持, 以获得一个完全针对 gnome 的系统.

默认的 USE 设置可以在 /etc/make.profile/make.defaults 中找到. 您写到 /etc/make.conf 中的值会和这些默认值一起进行运算. 如果您往 USE 中添加了某些东西, 它也会被加入到默认列表中. 如果您从 USE 中移去了某些东西 (在它前面加个减号), 它也会从默认列表中被移去 (当然, 前提是它一开始是在默认列表中的). 绝不要更改 /etc/make.profile 目录中的任何东西, 因为您一更新 Portage, 它们就被覆盖了!

对于 USE 的详细的描述可以在 Gentoo 手册的第二部分中找到, 第一章: USE 参数. 所有可用的 USE 值可以在您系统中的 /usr/portage/profiles/use.desc 文件里找到.

代码清单 6: 查看所有可用的 USE 值
# less /usr/portage/profiles/use.desc

下面的例子向您展示如何设置 USE 以获得一个完全 KDE 的系统, 并且支持 DVD, ALSA 和光盘刻录:

代码清单 7: 打开 /etc/make.conf
# nano -w /etc/make.conf

代码清单 8: USE 设定
USE="-gtk -gnome qt kde dvd alsa cdr"
可选: 使用分布式编译 (Distributed Compiling)

如果您有兴趣使用一堆的系统来帮您编译您自己的系统, 您可以看看我们的 DistCC 指引. 使用 distcc, 您可以享受多个系统一起帮您完成安装过程的快感. (Cure: 前提是你能弄到多台装了 Linux 系统的机器... 哈哈)

(break: 16:50 - 17:27 = 37 min)

6.b. Stage1, Stage2 与 Stage3 之前的差异

我们现在先坐下来, 想想您前面所做过的一些步骤. 我们曾经让您从 stage1, stage2 和 stage3 中选择一个作为起点, 并且已经提醒过您的选择对于后续的安装步骤非常重要. 此时, 便是您的选择决定后续安装步骤的第一个地方:

6.c. 从 Stage1 到 Stage2

系统自举 (bootstrapping) 之简介

那么, 您决定从头开始编译所有东西? 好吧 :-)

在这一步中, 我们会对您的系统进行自举 (bootstrap). 这会用上很长很长的时间, 不过呢, 结果是, 您将得到一个为您的机器彻彻底底度身订造的顶级优化的系统.

系统自举 (bootstrapping) 是指编译 GNU C 库, GNU C 编译器集合以及其他几个关键性的系统工具. (Cure: 有了这些工具, 系统就可以让自己 "举" 起来. 比如有了 gcc 编译器之后, 系统就可以为自己编译其他软件, 这就是 "自举" 的含义)

在开始系统自举之前, 我们为您列举一些可有可无的操作. 如果您对此不感兴趣, 可以直接跳到系统自举部分.

可选: 先下载软件源码包

如果您之前未曾把所有的软件源码包拷贝过来, 那么系统自举脚本 (bootstrap script) 将会自动去下载所需的文件. 无疑, 这需要您有可用的网络连接 :-) 如果您想先下载所有的软件源码包, 然后再进行系统自举 (比如您考虑到安全性问题, 希望在编译软件包时可以断开网络连接), 您可以把 -f 参数传递给自举脚本, 然后它就会自动地先把软件源码包给您取 (f, fetch) 回来.

代码清单 9: 下载所需的软件源码包
# cd /usr/portage
# script/bootstrap.sh -f
系统自举

好了, 拿出您的键盘, 输入下面的命令来开始系统自举吧. 然后去给自己找点乐子磨磨时间, 因为这一步要花很长很长的时间来完成.

代码清单 10: 系统自举
# cd /usr/portage
# script/bootstrap.sh

(Cure: 如果你打算用 2.6 内核, 就应该用 script/bootstrap-2.6.sh)

我们继续下一步6.d. 从 Stage2 到 Stage3

6.d. 从 Stage2 到 Stage3

简介

当您开始读这一部分时, 您应该已经完成了系统自举 (bootstrapped) 过程 (要么在之前的步骤中完成了, 要么您是从 stage2 开始的). 下面我们要开始构建所有的系统软件包.

所有的系统软件包? 非也, 至少不完全是. 在本步骤当中, 您将构建的仅仅是那些无可替代的系统软件包部分. 而另外一些系统软件包则有数个替代选择 (比如系统日志软件就有好几个). 因为 "Gentoo 意味着选择", (只要在有选择自由的地方) 我们一点都不会把不自由强加于您.

可选: 看看将要做些什么

如果您想知道都有哪些软件包会被装上, 运行 emerge --pretend system. 这将列出所有会被编译安装的软件包. 由于这个列表不小, 您最好使用 less 或 more 这样的分页程序以便翻页查看:

代码清单 11: 看看 'emerge system' 都会干些什么
# emerge --pretend system | less
可选: 先下载软件源码包

如果您想在继续之前让 emerge 先把软件源码包都下载到本机 (比如您考虑到安全性问题, 希望在编译软件包时可以断开网络连接), 那么您可以使用 --fetchonly 参数让 emerge 把软件源码包都先下载回来.

代码清单 12: 先下载软件源码包
# emerge --fetchonly system
构建系统

我们下面运行 emerge system 来构建系统. 然后呢, 给您自己找点事儿做做, 因为这一步会用上足够漫长的一段时间的.

代码清单 13: 构建系统
# emerge system

此时, 您完全可以忽略所有关于要求更新配置文件 (运行 etc-update) 之类的警告信息. 在您的 Gentoo 系统彻底安装完毕并且启动之后, 请一定读读我们的这一部分文档: 配置文件的保护.

一旦系统构建完毕, 请继续下一章配置您的内核.


[上一页][索引页][首页][下一页]

Valid HTML 4.01!